#ifndef DATAEXTENTION_H_INCLUDED
#define DATAEXTENTION_H_INCLUDED

#include "sDataHandle.h"

/// Abstract data extention
class IDataExtention {
protected:

private:
	str	m_strExtentionName;  ///< Name of extention. Only for information.
	str 	m_strFileExtentions; ///< File Extention Mask
	uint 	m_uiDataTypeID;		///< Used in the data management system as Type of Data

public:
	str 	GetName			( ) const { return m_strExtentionName; 	}
	str 	GetFileMask		( ) const { return m_strFileExtentions; 	}
	uint 	GetDataTypeID	( ) const { return m_uiDataTypeID; 			}

	virtual int LoadContent( str filename ) = 0;
	virtual int SaveContent( str filename ) = 0;

				// Constructor & Destructor
				IDataExtention( str name, uint typeID, str extMASK )
				: m_strExtentionName(name), m_strFileExtentions(extMASK), m_uiDataTypeID(typeID) { }
	virtual ~IDataExtention(  ) { }
};


#endif // DATAEXTENTION_H_INCLUDED
